

----------------------------------------------------------------
--- Copyright：  迷你玩-海马
--- Description：服务器之间互相调用的时候使用
--- 后面使用 gate_rpc 模块来代替了
--- 目前只有 ServerMonitor_report 上报功能在用
----------------------------------------------------------------



local require    = require
local setmetatable = setmetatable
local getmetatable = getmetatable
local ngx = ngx

----数据变量----
local ns_env     = require("modules.env.env")          ---应该与具体环境无关
local uu         = require("modules.commhm.utils");
local log        = require("modules.commhm.log");
local ns_time    = require("modules.commhm.time");
local ns_network = require("modules.commhm.network");

local ns_auth_comm_checker = require("modules.commhm.auth_comm_checker")


-- 时间缓存类 cache
local _M = { _VERSION = '0.12.1' }
local mt = { __index = _M }


--- goserver监控上报服务的地址
local ServerMonitorAddr = {
	url_list_0 = "http://139.159.189.215:8080/miniw/goserver?",   --正式环境
	url_list_1 = "http://120.24.64.132:8080/miniw/goserver?",     --测试环境
}


--- 初始化调用类，
--- reason_  ： 用来统计和查错误的名字
--- url_info_： 可传入一个url地址，或者一个列表
function _M:new( reason_ )
	--log.debug( log.fast() and "call CServersApiClient:new");

	local ins_ = {
		reason = reason_,    ---用来按reason做统计
		tj = {},             ---统计信息
	};

	return setmetatable(ins_, mt);
end


--------------------------------goserver监控上报专用---------------------
---上报一个内容( 不需要new对象，直接上报 )
function _M.ServerMonitor_report( t_, json_str_ )
	t_.env  = ns_env.debug
	t_.time = uu.now()
	t_.auth = ngx.md5( t_.cmd .. t_.time .. "8ae5fc3f70d4edee5957695618c21cd8" ) ---goserver专用key

	local url_ext_ = ngx.encode_args( t_ )

	--- 1 上报到正式环境
	local url_ = ServerMonitorAddr.url_list_0 .. url_ext_
	local ret_, body_, resp_ = ns_network.postHttpPage( url_, json_str_, 6000,
			{ ["Content-Type"] = "application/json", } )
	log.day_list( "ServerMonitor_call", url_, #json_str_, uu.to_str(ret_), uu.to_str(body_), uu.to_str(resp_) )

	--- 2 再次上报到测试环境
	local url_ = ServerMonitorAddr.url_list_1 .. url_ext_
	local ret_, body_, resp_ = ns_network.postHttpPage( url_, json_str_, 6000,
			{ ["Content-Type"] = "application/json", } )
	log.day_list( "ServerMonitor_call", url_, #json_str_, uu.to_str(ret_), uu.to_str(body_), uu.to_str(resp_) )
end





return _M;
